﻿namespace Javascript.Global {
	using System;

	public class HtmlElement : HtmlNode {
		protected HtmlElement() {}

		public HtmlElementCollection children {
			get;
			private set;
		}
		///<summary>
		///Removes the given attribute from the object.
		///</summary>
		///<param name="attName">String that specifies the attribute name. </param>
		public void removeAttribute(string attName) {
		}
		///<summary>
		///Removes the given attribute from the object.
		///</summary>
		///<param name="attName">String that specifies the attribute name. </param>
		///<param name="caseSensitive"> Integer that specifies whether to use a case-sensitive search to locate the attribute. By default, this value is set to 1 to indicate that the uppercase and lowercase letters in the specified sName parameter must exactly match those in the attribute name. If there are multiple attributes specified with different case sensitivity, the attribute returned might vary across platforms. </param>
		public void removeAttribute(string attName, int caseSensitive) {
		}

		///<summary>
		///Inserts the given HTML text into the element at the location
		///</summary>
		///<param name="where">
		///String that specifies where to insert the HTML text, using one of the following values: 
		///beforeBegin Inserts sText immediately before the object. 
		///afterBegin Inserts sText after the start of the object but before all other content in the object. 
		///beforeEnd Inserts sText immediately before the end of the object but after all other content in the object. 
		///afterEnd Inserts sText immediately after the end of the object. 
		///</param>
		///<param name="html">String that specifies the HTML text to insert. The string can be a combination of text and HTML tags. This must be well-formed, valid HTML or this method will fail. </param>
		public void insertAdjacentHTML(string where, string html) {
		}
		///<summary>
		///Binds the specified function to an event, so that the function gets called whenever the event fires on the object.
		///</summary>
		///<remarks>Only works in IE - Non standard</remarks>
		///<param name="eventName"></param>
		///<param name="handler"></param>
		public void attachEvent(string eventName, Action<HtmlDomEventArgs> handler) {
		}
		///<summary>
		///Binds the specified function to an event, so that the function gets called whenever the event fires on the object.
		///</summary>
		///<param name="eventName"></param>
		///<param name="handler"></param>
		///<param name="useCapture"></param>
		public void addEventListener(string eventName, Action<HtmlDomEventArgs> handler, bool useCapture) {
		}
		///<summary>
		///Unbinds the specified function from the event, so that the function stops receiving notifications when the event fires.
		///</summary>
		/// <remarks>Only works in IE - Non standard</remarks>
		///<param name="eventName"></param>
		///<param name="handler"></param>
		public void detachEvent(string eventName, Action<HtmlDomEventArgs> handler) {}
		///<summary>
		///Unbinds the specified function from the event, so that the function stops receiving notifications when the event fires.
		///</summary>
		///<param name="eventName"></param>
		///<param name="handler"></param>
		///<param name="useCapture"></param>
		public void removeEventListener(string eventName, Action<HtmlDomEventArgs> handler, bool useCapture) {
		}
		///<summary>
		///Fires a specified event on the object.
		///</summary>
		///<param name="sEvent">String that specifies the name of the event to fire.</param>
		///<param name="oEventObject">Object that specifies the event object from which to obtain event object properties.</param>
		public void fireEvent(string sEvent, HtmlDomEventArgs oEventObject) {
		}
		///<summary>
		///Fires a specified event on the object.
		///</summary>
		///<param name="sEvent">String that specifies the name of the event to fire.</param>
		public void fireEvent(string sEvent) {
		}
		///<summary>
		///Retrieves a collection of rectangles that describes the layout of the contents of an object or range within the client. Each rectangle describes a single line. 
		///</summary>
		///<returns>Returns the TextRectangle collection. Each rectangle has four integer properties (top, left, right, and bottom) that each represent a coordinate of the rectangle, in pixels.</returns>
		public HtmlTextRectangleCollection getClientRects() {
			return null;
		}
		///<summary>
		///Specifies that an element cannot be selected.
		///</summary>
		public string unselectable {
			get;
			set;
		}
		///<summary>
		///Sets or retrieves the string identifying the object.
		///</summary>
		public string id {
			get;
			set;
		}
		///<summary>
		///Retrieves an autogenerated, unique identifier for the object. 
		///</summary>
		public string uniqueID {
			get;
			set;
		}
		///<summary>
		///Sets or retrieves the string that indicates whether the user can edit the content of the object.
		///</summary>
		public string contentEditable {
			get;
			set;
		}
		///<summary>
		///Retrieves a reference to the last child in the childNodes collection of an object.
		///</summary>
		public HtmlNode lastChild {
			get;
			set;
		}
		///<summary>
		///Retrieves a reference to the container object that defines the offsetTop and offsetLeft properties of the object.
		///</summary>
		public HtmlElement offsetParent {
			get;
			set;
		}
		///<summary>
		///Sets or retrieves the distance between the left edge of the object and the leftmost portion of the content currently visible in the window. 
		///</summary>
		public int scrollLeft {
			get;
			set;
		}
		///<summary>
		///Sets or retrieves the distance between the top of the object and the topmost portion of the content currently visible in the window. 
		///</summary>
		public int scrollTop {
			get;
			set;
		}
		///<summary>
		///Retrieves the calculated left position of the object relative to the layout or coordinate parent, as specified by the offsetParent property. 
		///</summary>
		public int offsetLeft {
			get;
			set;
		}
		///<summary>
		///Retrieves the calculated top position of the object relative to the layout or coordinate parent, as specified by the offsetParent property. 
		///</summary>
		public int offsetTop {
			get;
			set;
		}
		///<summary>
		///Retrieves the width of the object relative to the layout or coordinate parent, as specified by the offsetParent property. 
		///</summary>
		public int offsetWidth {
			get;
			set;
		}
		///<summary>
		///Retrieves the height of the object relative to the layout or coordinate parent, as specified by the offsetParent property. 
		///</summary>
		///<remarks>When overflowY is Scroll, this is the physical height of the control, which is clientHeight + Vscrollbar size</remarks>
		public int offsetHeight {
			get;
			set;
		}
		///<summary>
		///Retrieves the distance between the offsetTop property and the true top of the client area.
		///</summary>
		public int clientTop {
			get;
			set;
		}
		///<summary>
		///Retrieves the distance between the offsetLeft property and the true left side of the client area.
		///</summary>
		public int clientLeft {
			get;
			set;
		}
		///<summary>
		///Retrieves the width of the object including padding, but not including margin, border, or scroll bar.
		///</summary>
		public int clientWidth {
			get;
			set;
		}
		///<summary>
		///Retrieves the height of the object including padding, but not including margin, border, or scroll bar.
		///</summary>
		///<remarks>When overflowY is Scroll, this is the physical displayed height of the children w/o the scrollbar</remarks>
		public int clientHeight {
			get;
			set;
		}
		///<summary>
		///Retrieves the scrolling width of the object.
		///</summary>
		public int scrollWidth {
			get;
			set;
		}
		///<summary>
		///Gets the namespace defined for the element.
		///</summary>
		public string scopeName {
			get;
			set;
		}
		///<summary>
		///Retrieves the ordinal position of the object, in source order, as the object appears in the document's all collection.
		///</summary>
		public int sourceIndex {
			get;
			set;
		}
		///<summary>
		///Retrieves the scrolling height of the object. 
		///</summary>
		///<remarks>When overflowY is Scroll, this is the virtual height of the scrollable region (without scrolling, this would be the physical height of the element)</remarks>
		public int scrollHeight {
			get;
			set;
		}
		///<summary>
		///Retrieves the document object associated with the node.
		///</summary>
		public HtmlDocument document {
			get;
			set;
		}
		///<summary>
		///Retrieves a collection of HTML Elements and TextNode objects that are direct descendants of the specified object.
		///</summary>		
		public HtmlNodeCollection childNodes {
			get;
			set;
		}
		///<summary>
		///Sets or retrieves advisory information (a ToolTip) for the object. 
		///</summary>
		public string title {
			get;
			set;
		}
		///<summary>
		///Sets or retrieves the HTML between the start and end tags of the object.
		///</summary>
		public string innerHTML {
			get;
			set;
		}
		///<summary>
		///Sets or retrieves the text between the start and end tags of the object.
		///</summary>
		public string innerText {
			get;
			set;
		}
		///<summary>
		///Sets or retrieves the text between the start and end tags of the object.
		///</summary>
		/// <remarks>Use innerText in IE</remarks>
		public string textContent {
			get;
			set;
		}
		///<summary>
		///Sets or retrieves the index that defines the tab order for the object.
		///</summary>
		public int tabIndex {
			get;
			set;
		}
		///<summary>
		///Sets or gets the Uniform Resource OriginalValue (URN) specified in the namespace declaration.
		///</summary>
		public string tagUrn {
			get;
			set;
		}
		///<summary>
		///Sets an inline style for the element.
		///</summary>		
		public HtmlElementStyle style {
			get;
			set;
		}
		///<summary>
		///Returns the current (calculated) style of the element
		///</summary>
		public HtmlElementStyle currentStyle {
			get;
			set;
		}

		public new object this[string name] {
			get {
				return null;
			}
			set {
			}
		}
		///<summary>
		///Sets or retrieves the class of the object.
		///</summary>
		public string className {
			get;
			set;
		}
		///<summary>
		///Sets or retrieves a value that indicates whether the user can interact with the object.
		///</summary>
		public bool disabled {
			get;
			set;
		}
		///<summary>
		///Sets or retrieves a value that indicates the reading order of the object.
		///Possible values:
		///ltr		Default. Content flows from left to right.
		///rtl		Content flows from right to left.
		///</summary>
		public string dir {
			get;
			set;
		}
		///<summary>
		///Sets or retrieves the language to use.
		///</summary>
		public string lang {
			get;
			set;
		}
		///<summary>
		///Retrieves the tag name of the object. 
		///</summary>
		/// <remarks>In IE (all versions) the tagName of a comment node is !. Use nodeName instead.</remarks>
		public string tagName {
			get;
			set;
		}
		///<summary>
		///Retrieves the parent object in the document hierarchy.
		///</summary>
		/// <remarks>Use parentNode</remarks>
		public HtmlElement parentElement {
			get;
			set;
		}
		///<summary>
		///Appends an element as a child to the object.
		///</summary>
		///<param name="child"></param>
		public void appendChild(HtmlNode child) {
		}
		///<summary>
		///Removes a child node from the object.
		///</summary>
		///<param name="oNode">Object that specifies the element to be removed from the document.</param>
		public void removeChild(HtmlNode oNode) {
		}
		///<summary>
		///Sets the mouse capture to the object that belongs to the current document. 
		///</summary>
		public void setCapture() {
		}
		/// <summary>
		/// Sets the mouse capture to the object that belongs to the current document. 
		/// </summary>
		/// <param name="containerCapture">A Boolean that specifies one of the following values. true Default. Events originating in a container are captured by the container. 
		///false Events originating in a container are not captured by the container 
		///</param>
		public void setCapture(bool containerCapture) {
		}
		///<summary>
		///Removes mouse capture from the object in the current document.
		///</summary>
		public void releaseCapture() {
		}

		public void insertBefore(HtmlNode newNode) {
		}
		public void insertBefore(HtmlNode newNode, HtmlNode child) {
		}
		///<summary>
		///Retrieves a reference to the first child in the childNodes collection of the object. 
		///</summary>
		/// <remarks>Konqueror ignores comment nodes.</remarks>
		public HtmlNode firstChild {
			get;
			private set;
		}
		///<summary>
		///Sets or retrieves the text of the object.
		///</summary>
		public string outerText {
			get;
			set;
		}
		///<summary>
		///Sets or retrieves the object and its content in HTML.
		///</summary>
		public string outerHTML {
			get;
			set;
		}

		///<summary>
		///Removes the object from the document hierarchy.
		///</summary>
		public void removeNode() {
		}
		///<summary>
		///Removes the object from the document hierarchy.
		///</summary>
		///<param name="bRemoveChildren">A Boolean that specifies one of the following values. </param>
		public void removeNode(bool bRemoveChildren) {
		}
		///<summary>
		///Causes the element to lose focus and fires the onblur event.
		///</summary>
		public void blur() {
		}
		///<summary>
		///Retrieves a collection of attributes of the object.
		///</summary>
		public HtmlAttributeCollection attributes {
			get;
			set;
		}
		///<summary>
		///Sets the value of the specified attribute 
		///</summary>
		/// <remarks>IE5-7 doesn't set styles and removes events when you try to set them.</remarks>
		///<param name="name">String that specifies the name of the attribute.</param>
		///<param name="value">Variant that specifies the string, number, or Boolean to assign to the attribute.</param>
		public void setAttribute(string name, object value) {
		}
		///<summary>
		///Copies a reference to the object from the document hierarchy. 
		///</summary>
		///<param name="includeChildren">Boolean that specifies one of the following values:
		///FALSE Cloned objects do not include childNodes. 
		///TRUE Cloned objects include childNodes. </param>
		///<returns>Returns a reference to the newly created node.</returns>
		public HtmlElement cloneNode(bool includeChildren) {
			return null;
		}
		///<summary>
		///Copies a reference to the object from the document hierarchy. 
		///</summary>
		///<returns>Returns a reference to the newly created node.</returns>
		public HtmlElement cloneNode() {
			return null;
		}
		///<summary>
		///Causes the element to receive the focus and executes the code specified by the onfocus event. 
		///</summary>
		public void focus() {
		}
		///<summary>
		///Causes the object to scroll into view, aligning it either at the top or bottom of the window. 
		///</summary>
		public void scrollIntoView() {
		}
		///<summary>
		///Causes the object to scroll into view, aligning it either at the top or bottom of the window. 
		///</summary>
		/// <remarks>Safari iPhone handles the Y-coordinate correctly, but it also scrolls to the left edge of the page, which can make this method hard to use when the user has zoomed in.</remarks>
		///<param name="alignToTop">Boolean that specifies one of the following values: 
		///true Default. Scrolls the object so that top of the object is visible at the top of the window. 
		///false Scrolls the object so that the bottom of the object is visible at the bottom of the window </param>
		public void scrollIntoView(bool alignToTop) {
		}
		///<summary>
		///Sets the object as active without setting focus to the object.
		///</summary>
		public void setActive() {
		}
		///<summary>
		///Puts the specified node and all of its subtree into a "normalized" form. In a normalized subtree, no text nodes in the subtree are empty and there are no adjacent text nodes.
		///</summary>
		public void normalize() {
		}
		///<summary>
		///Creates an attribute object with a specified name.
		///</summary>
		///<param name="sName">A String that sets the attribute object's name.</param>
		public HtmlAttribute createAttribute(string sName) {
			return null;
		}
		///<summary>
		///Sets an attribute object node as part of the object.
		///</summary>
		///<param name="oSrcAttribute">attribute object to be assigned.</param>
		///<remarks>IE6-7 gives null for style values.</remarks>
		///<returns>
		///Returns a reference to the removed attribute object.
		///</returns>
		
		public HtmlAttribute setAttributeNode(HtmlAttribute oSrcAttribute) {
			return null;
		}

		///<summary>
		///Retrieves the value of the specified attribute.
		///</summary>
		/// <remarks>In IE5-7, accessing the style attribute gives an object, and accessing the onclick attribute gives an anonymous function wrapped around the actual content.</remarks>
		///<param name="sAttrName">String that specifies the name of the attribute.</param>
		///<param name="iFlags">HtmlAttributeSearch</param>
		///<returns>Variant that returns a String, Integer, or Boolean value as defined by the attribute. If the attribute is not present, this method returns null.</returns>
		public object getAttribute(string sAttrName, HtmlAttributeSearch iFlags) {
			return null;
		}

		///<summary>
		///Retrieves the value of the specified attribute.
		///</summary>
		///<remarks>In IE5-7, accessing the style attribute gives an object, and accessing the onclick attribute gives an anonymous function wrapped around the actual content.</remarks>
		///<param name="sAttrName">String that specifies the name of the attribute.</param>
		///<returns>Variant that returns a String, Integer, or Boolean value as defined by the attribute. If the attribute is not present, this method returns null.</returns>
		public object getAttribute(string sAttrName) {
			return null;
		}
		///<summary>
		///Retrieves an attribute object referenced by the attribute.name property.
		///</summary>
		///<remarks>IE 6/7 don't allow you to access the value of x.getAttributeNode('style').</remarks>
		///<param name="sName">String that specifies the name property of the requested attribute object.</param>
		///<returns>Returns a reference to an attribute object.</returns>
		public HtmlAttribute getAttributeNode(string sName) {
			return null;
		}
		///<summary>
		///Determines whether an attribute with the specified name exists.
		///</summary>
		///<param name="sAttrName">String that specifies the name of the attribute.</param>
		public bool hasAttribute(string sAttrName) {
			return true;
		}
		///<summary>
		///returns a boolean value of true or false, indicating if the current element has any attributes or not.
		///</summary>
		public bool hasAttributes() {
			return true;
		}
		///<summary>
		///Removes an attribute object from the object.
		///</summary>
		///<param name="oSrcAttribute">attribute object to be removed.</param>
		///<remarks>Returns a reference to the removed attribute object.
		/// IE 6 does't remove anything, but doesn't give an error message either.
		/// IE 7 doesn't remove styles and event handlers.
		/// Opera doesn't remove event handlers.
		/// Konqueror doesn't remove the align attribute.</remarks>
		public HtmlAttribute removeAttributeNode(string oSrcAttribute) {
			return null;
		}

		///<summary>
		///Returns the number of element children
		///</summary>
		public int childElementCount {
			get;
			set;
		}

		///<summary>
		///Returns the first child that is an element node
		///</summary>
		public HtmlElement firstElementChild {
			get;
			set;
		}

		///<summary>
		///Returns the last child that is an element node
		///</summary>
		public HtmlElement lastElementChild {
			get;
			set;
		}
		///<summary>
		///Returns the next element node sibling
		///</summary>
		public HtmlElement nextElementSibling {
			get;
			set;
		}
		///<summary>
		///Returns the previous  element node sibling
		///</summary>
		public HtmlElement previousElementSibling {
			get;
			set;
		}
		///<summary>
		///Returns an object that contains the top, left, right, and bottom (all relative to the top left of the viewport) of the combined rectangle of element x. Essentially, the browser calculates all rectangles (see below getClientRects()), and getBoundingClientRect() returns the lowest (top, left) or highest (bottom, right) values found.
		///</summary>
		/// <remarks>Firefox doesn't round the top/bottom coordinates.</remarks>
		///<returns></returns>
		public HtmlTextRectangle getBoundingClientRect() {
			return null;
		}
		///<summary>
		///Fires on a databound object after successfully updating the associated data in the data source object.
		///</summary>		
		public Action<HtmlDomEventArgs> onafterupdate;
		///<summary>
		///Fires immediately before the object is set as the active element.
		///</summary>		
		public Action<HtmlDomEventArgs> onbeforeactivate;
		///<summary>
		///Fires immediately before the activeElement is changed from the current object to another object in the parent document.
		///</summary>		
		public Action<HtmlDomEventArgs> onbeforedeactivate;
		///<summary>
		///Fires before an object contained in an editable element enters a UI-activated state or when an editable container object is control selected.
		///</summary>		
		public Action<HtmlDomEventArgs> onbeforeeditfocus;
		///<summary>
		///Fires on a databound object before updating the associated data in the data source object.
		///</summary>		
		public Action<HtmlDomEventArgs> onbeforeupdate;
		///<summary>
		///Fires when the object loses the input focus.
		///</summary>
		/// <remarks>Firefox 2 and Opera fire too many events in a variety of circumstances and also incorrectly bubble them.
		/// Safari and Chrome don’t support these events on links and/or form fields in all circumstances.
		/// Safari iPhone does not fire the event when the window loses the focus. </remarks>
		public Action<HtmlDomEventArgs> onblur;
		///<summary>
		///Fires when data changes in the data provider.
		///</summary>		
		public Action<HtmlDomEventArgs> oncellchange;
		///<summary>
		///Fires when the user clicks the left mouse button on the object.
		///</summary>		
		public Action<HtmlDomEventArgs> onclick;
		///<summary>
		///Fires when the user clicks the right mouse button in the client area, opening the context menu.
		///</summary>		
		/// <remarks>To prevent the default in Firefox 3 you have to cancel the event bubbling.</remarks>
		public Action<HtmlDomEventArgs> oncontextmenu;
		///<summary>
		///Fires when the user is about to make a control selection of the object.
		///</summary>		
		public Action<HtmlDomEventArgs> oncontrolselect;
		///<summary>
		///Fires on the source element when the user copies the object or selection, adding it to the system clipboard.
		///</summary>		
		/// <remarks>Firefox 3 has a lazy implementation.</remarks>
		public Action<HtmlDomEventArgs> oncopy;
		///<summary>
		///Fires on the source element when the object or selection is removed from the document and added to the system clipboard.
		///</summary>		
		/// <remarks>Firefox 3 has a lazy implementation.</remarks>
		public Action<HtmlDomEventArgs> oncut;
		///<summary>
		///Fires periodically as data arrives from data source objects that asynchronously transmit their data.
		///</summary>		
		public Action<HtmlDomEventArgs> ondataavailable;
		///<summary>
		///Fires when the data set exposed by a data source object changes.
		///</summary>		
		public Action<HtmlDomEventArgs> ondatasetchanged;
		///<summary>
		///Fires to indicate that all data is available from the data source object.
		///</summary>		
		public Action<HtmlDomEventArgs> ondatasetcomplete;
		///<summary>
		///Fires when the user double-clicks the object.
		///</summary>		
		public Action<HtmlDomEventArgs> ondblclick;
		///<summary>
		///Fires on the source object continuously during a drag operation.
		///</summary>		
		public Action<HtmlDomEventArgs> ondrag;
		///<summary>
		///Fires on the source object when the user releases the mouse at the close of a drag operation.
		///</summary>		
		public Action<HtmlDomEventArgs> ondragend;
		///<summary>
		///Fires on the target element when the user drags the object to a valid drop target.
		///</summary>		
		public Action<HtmlDomEventArgs> ondragenter;
		///<summary>
		///Fires on the target object when the user moves the mouse out of a valid drop target during a drag operation.
		///</summary>		
		public Action<HtmlDomEventArgs> ondragleave;
		///<summary>
		///Fires on the target element continuously while the user drags the object over a valid drop target.
		///</summary>		
		public Action<HtmlDomEventArgs> ondragover;
		///<summary>
		///Fires on the source object when the user starts to drag a text selection or selected object.
		///</summary>		
		public Action<HtmlDomEventArgs> ondragstart;
		///<summary>
		///Fires on the target object when the mouse button is released during a drag-and-drop operation.
		///</summary>		
		public Action<HtmlDomEventArgs> ondrop;
		///<summary>
		///Fires on a databound object when an error occurs while updating the associated data in the data source object.
		///</summary>		
		public Action<HtmlDomEventArgs> onerrorupdate;
		///<summary>
		///Fires when a visual filter changes state or completes a transition.
		///</summary>		
		public Action<HtmlDomEventArgs> onfilterchange;
		///<summary>
		///Fires when the object receives focus.
		///</summary>		
		/// <remarks>Firefox 2 and Opera fire too many events in a variety of circumstances and also incorrectly bubble them.
		/// Firefox fires a focus event whenever you click on the document.
		/// Safari and Chrome don’t support these events on links and/or form fields in all circumstances.</remarks>
		public Action<HtmlDomEventArgs> onfocus;
		///<summary>
		///Fires when the user presses the F1 key while the browser is the active window.
		///</summary>		
		public Action<HtmlDomEventArgs> onhelp;
		///<summary>
		///Fires when the user presses a key.
		///</summary>		
		/// <remarks>The keydown event does not repeat in Opera and Konqueror.
		/// You cannot prevent the default onkeydown in Opera.</remarks>
		public Action<HtmlDomEventArgs> onkeydown;
		///<summary>
		///Fires when the user presses an alphanumeric key.
		///</summary>		
		/// <remarks>Firefox, Safari 3.0, Opera and Konqueror fire keypress events on any key. (The specification requires this event to be fired only if a keystroe leads to a character actually being added to an HTML element such as a text input.)</remarks>
		public Action<HtmlDomEventArgs> onkeypress;
		///<summary>
		///Fires when the user releases a key.
		///</summary>		
		public Action<HtmlDomEventArgs> onkeyup;
		///<summary>
		///Fires when the print or print preview layout process finishes filling the current LayoutRect object with content from the source document.
		///</summary>		
		public Action<HtmlDomEventArgs> onlayoutcomplete;
		///<summary>
		///Fires when the object loses the mouse capture.
		///</summary>		
		public Action<HtmlDomEventArgs> onlosecapture;
		///<summary>
		///Fires when the user clicks the object with either mouse button.
		///</summary>		
		public Action<HtmlDomEventArgs> onmousedown;
		///<summary>
		///Fires when the user moves the mouse over the object.
		///</summary>		
		public Action<HtmlDomEventArgs> onmousemove;
		///<summary>
		///Fires when the user moves the mouse pointer outside the boundaries of the object.
		///</summary>		
		public Action<HtmlDomEventArgs> onmouseout;
		///<summary>
		///Fires when the user moves the mouse pointer into the object.
		///</summary>		
		public Action<HtmlDomEventArgs> onmouseover;
		///<summary>
		///Fires when the user releases a mouse button while the mouse is over the object.
		///</summary>		
		public Action<HtmlDomEventArgs> onmouseup;
		///<summary>
		///Fires when the wheel button is rotated.
		///</summary>		
		public Action<HtmlDomEventArgs> onmousewheel;
		///<summary>
		///Fires when the object moves.
		///</summary>		
		public Action<HtmlDomEventArgs> onmove;
		///<summary>
		///Fires when the object stops moving.
		///</summary>		
		public Action<HtmlDomEventArgs> onmoveend;
		///<summary>
		///Fires when the object starts to move.
		///</summary>		
		public Action<HtmlDomEventArgs> onmovestart;
		///<summary>
		///Fires on the target object when the user pastes data, transferring the data from the system clipboard to the document.
		///</summary>		
		/// <remarks>Firefox 3 has a lazy implementation.</remarks>
		public Action<HtmlDomEventArgs> onpaste;
		///<summary>
		///Fires when a property changes on the object.
		///</summary>		
		public Action<HtmlDomEventArgs> onpropertychange;
		///<summary>
		///Fires when the state of the object has changed.
		///</summary>		
		public Action<HtmlDomEventArgs> onreadystatechange;
		///<summary>
		///Fires when the size of the object is about to change.
		///</summary>		
		public Action<HtmlDomEventArgs> onresize;
		///<summary>
		///Fires when the user finishes changing the dimensions of the object in a control selection.
		///</summary>		
		public Action<HtmlDomEventArgs> onresizeend;
		///<summary>
		///Fires when the user begins to change the dimensions of the object in a control selection.
		///</summary>		
		public Action<HtmlDomEventArgs> onresizestart;
		///<summary>
		///Fires to indicate that the current row has changed in the data source and new data values are available on the object.
		///</summary>		
		public Action<HtmlDomEventArgs> onrowenter;
		///<summary>
		///Fires just before the data source control changes the current row in the object.
		///</summary>		
		public Action<HtmlDomEventArgs> onrowexit;
		///<summary>
		///Fires when rows are about to be deleted from the recordset.
		///</summary>		
		public Action<HtmlDomEventArgs> onrowsdelete;
		///<summary>
		///Fires just after new rows are inserted in the current recordset.
		///</summary>		
		public Action<HtmlDomEventArgs> onrowsinserted;
		///<summary>
		///Fires when the user repositions the scroll box in the scroll bar on the object.
		///</summary>		
		/// <remarks>Safari probably monitors scrollTop access in order to determine whether the user has scrolled an element with overflow: auto.</remarks>
		public Action<HtmlDomEventArgs> onscroll;
		///<summary>
		///Fires when the object is being selected.
		///</summary>		
		public Action<HtmlDomEventArgs> onselectstart;
		
		///<summary>
		///Fires when the object is set as the active element. Only works in IE
		///</summary>		
		public Action<HtmlDomEventArgs> onactivate;
		///<summary>
		///Fires on the source object before the selection is copied to the system clipboard.		
		///</summary>		
		public Action<HtmlDomEventArgs> onbeforecopy;
		///<summary>
		///Fires on the source object before the selection is deleted from the document.
		///</summary>		
		public Action<HtmlDomEventArgs> onbeforecut;
		///<summary>
		///Fires on the target object before the selection is pasted from the system clipboard to the document.
		///</summary>		
		/// <remarks>Safari 3.1 and Chrome do not fire this event before an actual paste action. It works fine on context menus.</remarks>
		public Action<HtmlDomEventArgs> onbeforepaste;
		///<summary>
		///Fires when the activeElement is changed from the current object to another object in the parent document. IE only.
		///</summary>		
		public Action<HtmlDomEventArgs> ondeactivate;
		///<summary>
		///Fires for an element just prior to setting focus on that element. IE only.
		///</summary>		
		public Action<HtmlDomEventArgs> onfocusin;
		///<summary>
		///Fires for the current element with focus immediately after moving focus to another element. IE only.
		///</summary>		
		public Action<HtmlDomEventArgs> onfocusout;
		///<summary>
		///Raised when there are changes to the portion of a URL that follows the number sign (#).  IE only.
		///</summary>
		public Action<HtmlDomEventArgs> onhashchange;
		///<summary>
		///Fires when the user moves the mouse pointer into the object. IE only.
		///</summary>		
		public Action<HtmlDomEventArgs> onmouseenter;
		///<summary>
		///Fires when the user moves the mouse pointer outside the boundaries of the object. IE only.
		///</summary>		
		public Action<HtmlDomEventArgs> onmouseleave;

		public void click() {}

		public string accessKey {
			get;
			set;
		}
	}
}
